package org.springblade.modules.repair.vo;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.modules.repair.entity.MaintainCheckGuide;
import org.springblade.modules.repair.entity.PlanCheckHistoryScore;
import org.springblade.modules.repair.vo.plan.store.ByWorkScoreInfoVo;

import java.util.HashMap;
import java.util.List;

/**
 * @Date 14:29 2022/3/30
 * @Description {
 *   任务关联模板工作项详情
 * }
 * @Author lsay
 **/
@Data
public class PlanTemplateContentVO {

	/**
	 * 工作项历史id
	 */
	@ApiModelProperty(value = "工作项历史id")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long checkHistoryId;


	@JsonSerialize(using = ToStringSerializer.class)
	private Long tltId;

	/**
	 * 电梯id
	 */
	@ApiModelProperty(value = "电梯id")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long elevatorId;
	/**
	 * 计划任务id
	 */
	@ApiModelProperty(value = "计划任务id")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long planId;
	/**
	 * 模板id
	 */
	@ApiModelProperty(value = "模板id")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long templateId;
	/**
	 * 模板名称
	 */
	@ApiModelProperty(value = "模板名称")
	private String templateName;
	/**
	 * 模板分类id多个逗号隔开
	 */
	@ApiModelProperty(value = "模板分类id多个逗号隔开")
	private String tltIds;
	/**
	 * 模板分类名称多个逗号隔开
	 */
	@ApiModelProperty(value = "模板分类名称多个逗号隔开")
	private String tltNames;
	/**
	 * 工作项id
	 */
	@ApiModelProperty(value = "工作项id")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long templateContentId;
	/**
	 * 维保要求描述
	 */
	@ApiModelProperty(value = "维保要求描述")
	private String requireDesc;
	/**
	 * 工作项要求图片
	 */
	@TableField(value = "require_img",typeHandler = JacksonTypeHandler.class)
	private List<HashMap<String,Object>> requireImg;
	/**
	 * 工作项名称
	 */
	@ApiModelProperty(value = "工作项名称")
	private String name;
	/**
	 * 工作项状态 1-正确 2-错误 3-无此项
	 */
	@ApiModelProperty(value = "工作项状态 1-正确 2-错误 3-无此项")
	private Integer result;
	/**
	 * 记录数据
	 */
	@ApiModelProperty(value = "记录数据")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private JSONObject recordData;

	/**
	 * 工作项类型id
	 */
	@ApiModelProperty(value = "工作项类型id")
	private String planType;
	/**
	 * 工作项类型名称
	 */
	@ApiModelProperty(value = "工作项类型名称")
	private String planTypeName;

	/**
	 * 年检类型id
	 */
	@ApiModelProperty(value = "年检类型id")
	private String asType;
	/**
	 * 年检类型名称
	 */
	@ApiModelProperty(value = "年检类型名称")
	private String asTypeName;
	/**
	 * 适用梯型id
	 */
	@ApiModelProperty(value = "适用梯型id")
	private String applyElevatorType;
	/**
	 * 适用梯型名称
	 */
	@ApiModelProperty(value = "适用梯型名称")
	private String applyElevatorTypeName;

	/**
	 * 位置分类id
	 */
	@ApiModelProperty(value = "位置分类id")
	private String locationType;
	/**
	 * 位置分类名称
	 */
	@ApiModelProperty(value = "位置分类名称")
	private String locationTypeName;

	/**
	 * 模板场景分类id
	 */
	private Long templateSceneTypeId;

	/**
	 * 模板场景分类名称
	 */
	private String templateSceneTypeName;

	/**
	 * 操作记录
 	 */
	private List<CheckHistoryUserRecordVO> userRecordVOS;

	/**
	 * 作业指引
	 */
	private List<MaintainCheckGuide> checkGuideList;

	/**
	 * 评分信息-已舍弃不用
	 */
	private PlanCheckHistoryScore planCheckHistoryScore;


	@ApiModelProperty("评分信息")
	private List<ByWorkScoreInfoVo> byWorkScoreInfoVos;

}
